<?php
    class MoyenPaiement {
        //Alias sur table : mp
        public $id_moyen_paiement;
        public $libelle;
        public $valide;

        //Constructeur complet
        public function __construct($id_moyen_paiement, $libelle, $valide) {
                $this->setId($id_moyen_paiement);
                $this->setLibelle($libelle);
                $this->setValide($valide);
        }

        //Retourne le libellé du moyen de paiment 
        //Paramètre : aucun
        //Retourne (String)
        public function __toString() {
            return $this->libelle;
        }
        
        //Ajoute un objet MoyenPaiement à la BDD
        //Paramètre : aucun
        //Retourne (MoyenPaiement)
        public function add() {
            $sql =  'INSERT INTO moyen_paiement (libelle, valide) VALUES
                    ("'.Db::insertion($this->libelle).'", '.intval($this->valide).')';
            $this->setId(Db::Execute($sql));
            return $this;
        }
        
        //Modifie un objet MoyenPaiement dans la BDD
        //Paramètre : aucun
        //Retourne (MoyenPaiement)
        public function update() {
            $sql =  'UPDATE moyen_paiement
                    SET valide = '.intval($this->valide).'
                    WHERE
                        id_moyen_paiement = '.intval($this->getId());
            Db::Execute($sql);
            return $this;
        }
        
        //Désactive un MoyenPaiement
        //Paramètre : aucun
        //Retourne (MoyenPaiement)
        public function suppr() {
            $this->setValide(false);
            return $this->update();
        }
                
        
        //Retourne tout les moyens de paiements qui sont valides
        //Paramètre : OPTIONNEL (Booléen)valide
        //Retourne collection de MoyenPaiement
        public static function getMoyensPaiement($valide = true) {
            $sql =  'SELECT
                        mp.id_moyen_paiement as mpid_moyen_paiement, mp.libelle as mplibelle, mp.valide as mpvalide
                    FROM moyen_paiement mp
                    WHERE
                        mp.valide = '.intval($valide);
            $ps = Db::Execute($sql, true);
            $tabRetour = array();
            foreach($ps as $p) {
                $tabRetour[] = new MoyenPaiement($p['mpid_moyen_paiement'], $p['mplibelle'], $p['mpvalide']);
            }

            return $tabRetour;
        }

        //Crée un objet MoyenPaiement grâce à son ID
        //Paramètre : (int)id
        //Retourne (MoyenPaiement)
        public static function rechercheMoyenPaiement($id) {
            $sql =  'SELECT
                        mp.id_moyen_paiement as mpid_moyen_paiement, mp.libelle as mplibelle, mp.valide as mpvalide
                    FROM moyen_paiement mp
                    WHERE
                        mp.id_moyen_paiement = '.intval($id);
            $ps = Db::Execute($sql, true);
            foreach($ps as $p) {
                return new MoyenPaiement($p['mpid_moyen_paiement'], $p['mplibelle'], $p['mpvalide']);
            }

            return null;
        }
		
        //GETTERS ET ACCESSEURS
        public function getId() {return $this->id_moyen_paiement;}
        public function getLibelle() {return $this->libelle;}
        public function getValide() {return $this->valide;}

        public function setId($temp) {$this->id_moyen_paiement = intval($temp);}
        public function setLibelle($temp) {$this->libelle = $temp;}
        public function setValide($temp) {$this->valide = intval($temp);}
    }

?>